package ${basePackage}.${interface};

import ${basePackage}.entity.${domainNameUpperCamel}${entity};
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;

/**
 * ${description}
 * @Author ${author}
 * @Data ${date}
 */
@Mapper
public interface ${domainNameUpperCamel}${interfaceType}{

	/**
	 *  insert
	 *  @Author ${author}
	 *  @Date ${date}
	 *	@param record Entity class
	 */
	int insert(${domainNameUpperCamel}${entity} record);
	/**
	 *  Not empty new
	 *  @Author ${author}
	 *  @Date ${date}
	 *	@param record Entity class
	 */
	int insertSelective(${domainNameUpperCamel}${entity} record);
	/**
	 *  A batch of new
	 *  @Author ${author}
	 *  @Date ${date}
	 *  @param  list An entity set
	 */
	int insertBatch(@Param("list")List<${domainNameUpperCamel}${entity}> list);
	/**
	 *  update
	 *  @Author ${author}
	 *  @Date ${date}
	 *	@param record Entity class
	 */
	int update(${domainNameUpperCamel}${entity} record);
	/**
	 *  Not empty update
	 *  @Author ${author}
	 *  @Date ${date}
	 *	@param record Entity class
	 */
	int updateSelective(${domainNameUpperCamel}${entity} record);
	/**
	 *  Physical deletion by ID
	 *  @Author ${author}
	 *  @Date ${date}
 	 *	@param id primary
 	 */
	int deleteById(${pkDataType} id);
	/**
	 *  Batch Physical Deletion
 	 *  @Author ${author}
	 *  @Date ${date}
	 *	@param ids The primary key array
	 */
    int deleteBatchById(@Param("ids") List<${pkDataType}> ids);
	/**
	 *  Load by ID
	 *  @Author ${author}
	 *  @Date ${date}
	 *  @param id primary
	 */
	${domainNameUpperCamel}${entity} findById(${pkDataType} id);
	/**
	 *  Get list data
	 *  @Author ${author}
	 *  @Date ${date}
	 *	@param map Default empty data set
	 */
	List<${domainNameUpperCamel}${entity}> queryListAll(@Param("parameter")Map<String, Object> map);

}
